Network Analysis HW 12 NTU GEOG M.S. YANG 臺大地理所碩一 楊宇翔 R09228001
題目: 利用本週提供的範例資料 csv files,進行以下的動態網絡分析: 1. 在Rmarkdown的html檔呈現動態網絡的animation。 2. 節點名稱為”Third artist in lat. 10525”的Forward path 與transmission tree。 3. 比較上述節點與節點”Hospitaller Master”的時序degree變化趨勢。 (用line chart呈現與比較)
library(networkDynamic)
library(tsna)
library(ndtv)
library(tergm)
library(statnet)
library(ggplot2)
# Step1
setwd("~/Desktop/Sample_DyNet")
library(networkDynamic)
library(tsna)
library(ndtv)
library(tergm)
library(statnet)
library(ggplot2)
# Step1
setwd("~/Desktop/Sample_DyNet")
data <- "Sample_VertexAttributes.csv"
MyVertexAttributes <- read.table(data,header = T,sep=",")
data <- "Sample_Edgelist.csv"
MyEdges <- read.table(data,header = T,sep=",")
thenetwork <- network(
MyEdges,
vertex.attr = MyVertexAttributes,
vertex.attrnames = c("vertex_id","name,","region"),
directed = FALSE,
bipartite=FALSE
)
# Step2
data <- "Sample_DynamicEdges.csv"
MyDynamicEdges <- read.table(data,header = T,sep=",")
data <- "Sample_DynamicNodes.csv"
MyDynamicNodes<- read.table(data,header = T,sep=",")
MyDynamics <- networkDynamic(
thenetwork,
edge.spells = MyDynamicEdges,
vertex.spells = MyDynamicNodes
)
## Edge activity in base.net was ignored
## Created net.obs.period to describe network
## Network observation period info:
## Number of observation spells: 1
## Maximal time range observed: 1257.5 until 1325
## Temporal mode: continuous
## Time unit: unknown
## Suggested time increment: NA
render.d3movie(MyDynamics,
displaylabels = T,
bg="#ffffff", vertex.border="#333333",
edge.col = 'black',
render.par=list(tween.frames = 30, show.time = F),
plot.par=list(mar=c(0,0,0,0)), output.mode='htmlWidget' )
## slice parameters:
## start:1257.5
## end:1325
## interval:1
## aggregate.dur:1
## rule:latest
id <-MyVertexAttributes$vertex.id[which(MyVertexAttributes$name=="Third artist in lat. 10525")]
MyFwdPath <- tPath( MyDynamics,
v = id, # vertex_id
direction = "fwd"
)
plot(MyFwdPath ,main="Forwar Reachable Set from Third artist in lat. 10525 ")
transmissionTimeline(MyFwdPath,jitter=TRUE,
main="Earliest forward path from Third artist in lat. 10525")
MyDynamicNodes$onset<-1257
MyDynamicNodes$terminus <- 1325
MyDynamics_3 <- networkDynamic(
thenetwork,
edge.spells = MyDynamicEdges,
vertex.spells = MyDynamicNodes
)
## Edge activity in base.net was ignored
## Created net.obs.period to describe network
## Network observation period info:
## Number of observation spells: 1
## Maximal time range observed: 1257 until 1325
## Temporal mode: continuous
## Time unit: unknown
## Suggested time increment: NA
degree_all<-tSnaStats(MyDynamics_3,"degree",aggregate.dur = 20)
Thir_inde<-which(MyVertexAttributes$name=="Third artist in lat. 10525")
Hos_index <- which(MyVertexAttributes$name=="Hospitaller Master")
degree_compare <- degree_all[,c(Thir_inde,Hos_index )]
colnames(degree_compare) <- c("Third artist in lat.10525","Hospitaller Master")
df<-as.data.frame(degree_compare)
df$time <- seq(1257,1325,1)
df_new <- df[,c(1,3)]
df_new2 <-df[,c(2,3)]
colnames(df_new)[1] <-"degree"
colnames(df_new2)[1]<-"degree"
df_new$group <-"Third artist in lat.10525"
df_new2$group <- "Hospitaller Master"
mydf<-rbind(df_new,df_new2)
ggplot(mydf,aes(x=time,y=degree,fill=group,colour=group))+geom_line()+ggtitle("Third artist in lat. 10525 and Hospitaller Master timely Degree Centrality value Comparison")